It removes all complicated features of c and c++ such as pointers, operator overloading, multiple inheritance, dynamic linking...etc.
Object Oriented
Java is Object Oriented Language.
It provides us programming environment where we can create objects and can perform operations on them.
Robust
The English mining of Robust is strong. Java is robust because:
It uses strong memory management.
There is a lack of pointers that avoids security problems.
Java provides automatic garbage collection which runs on the Java Virtual Machine to get rid of objects which are not being used by a Java application anymore.
There are exception handling and the type checking mechanism in Java. All these points make Java robust.
Secured
Java's security model protect users from hostile programs downloaded from some untrusted resource within a network through “sandbox”.
It allows all the Java programs to run inside the sandbox only and prevents many activities from untrusted resources such as reading or writing to the local disk, accessing network.
Dynamic
Some topics that are dynamic in java are
Dynamic Polymorphism
Compiler doesn’t understand which method to call in advance.
JVM decide which method to call at run time.
Dynamic memory allocation
All Java objects are dynamically allocated.
Distributed
Java is a distributed language which means that the program can be design to run on computer networks.
To design such applications Java provides an extensive library of classes for communication and technology such as RMI. .
Multithreading
Multithreading is a Java feature that allows concurrent execution of two or more parts of a program for maximum utilization of CPU.
Each part of such program is called a thread.
Now a day’s most GUI applications are multithreaded applications.
Platform Dependent Languages
Java is platform independent because it is different from other languages like C, C++, etc. which are compiled into platform specific machines while Java is a write once, run anywhere language. A platform is the hardware or software environment in which a program runs.
There are two types of platforms software-based and hardware-based. Java provides a software-based platform.
The Java platform differs from most other platforms in the sense that it is a software-based platform that runs on top of other hardware-based platforms. It has two components:
Runtime Environment
API(Application Programming Interface)
Java code can be executed on multiple platforms, for example, Windows, Linux, Sun Solaris, Mac/OS, etc. Java code is compiled by the compiler and converted into bytecode. This bytecode is a platform-independent code because it can be run on multiple platforms, i.e., Write Once and Run Anywhere (WORA).
Internet Programming
Platform Independent
Support to Internet Protocols
Provides libraries for network programming.
So java is most suitable for Internet Programming.